package com.boot.security.server.utils;

import org.apache.commons.lang3.StringUtils;

import java.util.regex.Pattern;

/**
 * 正则表达式匹配工具
 *
 * @author: bruce.cheng
 */
public class MatcherUtil {
    /**
     * http 表达式
     */
    private static final String HTTP="/(http):\\/\\/([\\w.]+\\/?)\\S*/";
    /**
     * https 表达式
     */
    private static final String HTTPS="/(https):\\/\\/([\\w.]+\\/?)\\S*/\n";


    private static final String MOBILE="^[1][3-9]{1}[0-9]{9}$";


    /**
     * 校验是电话
     *
     * @param content 校验内容
     * @return java.lang.Boolean true=合法，false=不合法
     * @author bruce.cheng
     * @date 2019-01-20 02:51
     */
    public static Boolean verifyMobile(String content){
        if (StringUtils.isBlank(content)) return false;
        return Pattern.matches(MOBILE, content);
    }

    /**
     * 校验是否合法的 https
     *
     * @param content 校验内容
     * @return java.lang.Boolean true=合法，false=不合法
     * @author bruce.cheng
     * @date 2019-01-20 02:51
     */
    public static Boolean verifyHttp(String content){
        if (StringUtils.isBlank(content)) return false;
        return Pattern.matches(HTTP, content);
    }

    /**
     * 校验是否合法的 https
     *
     * @param content 校验内容
     * @return java.lang.Boolean true=合法，false=不合法
     * @author bruce.cheng
     * @date 2019-01-20 02:51
     */
    public static Boolean verifyHttps(String content){
        if (StringUtils.isBlank(content)) return false;
        return Pattern.matches(HTTPS, content);
    }

    /**
     * 校验是否合法的 http 或 https
     *
     * @param content 校验内容
     * @return java.lang.Boolean true=合法，false=不合法
     * @author bruce.cheng
     * @date 2019-01-20 02:51
     */
    public static Boolean verifyHttpOrHttps(String content){
        if (StringUtils.isBlank(content)) return false;
        return verifyHttp(content) || verifyHttps(content);
    }

    public static void main(String[] args) {
        Boolean flag = MatcherUtil.verifyMobile("17621859897");
        System.out.println(flag);
    }
}